Method and apparatus for route optimization enforcement and verification

ABSTRACT

A technique dynamically enforces a best exit selection for a controlled prefix based on policies and real-time performance statistics in a computer network. A Master Controller (e.g., an Optimized Edge Routing, OER, Master Controller) of an autonomous system (AS) in the network selects a best exit from the AS for the controlled prefix, and conveys the selection to a border router having the selected exit. In response, the border router performs a parent lookup to determine whether the controlled prefix is reachable via the best exit. If so, the border router influences routing in the AS for the controlled prefix through the best exit by, e.g., injecting routes or modifying metrics of existing routes. The Master Controller (or border router) then verifies that the routes for the controlled prefix traverse the selected best exit. Notably, if a route does not traverse the selected best exit, the border router may try to influence the route again or remove the influence.

RELATED APPLICATION

This application claims the benefit of U.S. Provisional Application Ser.No. 60/679,184, entitled SYSTEMS AND METHODS FOR USE WITH OPTIMIZED EDGEROUTING, filed by Blair et al. on May 9, 2005, the contents of which arehereby incorporated in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to computer networks and more particularlyto enforcement and verification of route optimization decisions in acomputer network.

2. Background Information

A computer network is a geographically distributed collection of nodesinterconnected by communication links and segments for transporting databetween end nodes, such as personal computers and workstations(“hosts”). Many types of networks are available, with the types rangingfrom local area networks (LANs) to wide area networks (WANs). LANstypically connect the nodes over dedicated private communications linkslocated in the same general physical location, such as a building orcampus. WANs, on the other hand, typically connect geographicallydispersed nodes over long-distance communications links, such as commoncarrier telephone lines, optical lightpaths, synchronous opticalnetworks (SONET), or synchronous digital hierarchy (SDH) links. TheInternet is an example of a WAN that connects disparate networksthroughout the world, providing global communication between nodes onvarious networks. The nodes typically communicate over the network byexchanging discrete frames or packets of data according to predefinedprotocols, such as the Transmission Control Protocol/Internet Protocol(TCP/IP). In this context, a protocol consists of a set of rulesdefining how the nodes interact with each other. Computer networks maybe further interconnected by an intermediate network node, such as arouter, to extend the effective “size” of each network.

Since management of interconnected computer networks can proveburdensome, smaller groups of computer networks may be maintained asrouting domains or autonomous systems. The networks within an autonomoussystem (AS) are typically coupled together by conventional “intradomain”routers configured to execute intradomain routing protocols, and aregenerally subject to a common authority. To improve routing scalability,a service provider (e.g., an ISP) may divide an AS into multiple“areas.” It may be desirable, however, to increase the number of nodescapable of exchanging data; in this case, interdomain routers executinginterdomain routing protocols are used to interconnect nodes of thevarious ASes. Moreover, it may be desirable to interconnect various ASesthat operate under different administrative domains. As used herein, anAS or an area is generally referred to as a “domain,” and a node thatinterconnects different domains together is generally referred to as a“border node” or “border router.” In general, the autonomous system maybe an enterprise network, a service provider or any other network orsubnetwork. Furthermore, the autonomous system may be multi-homed, i.e.,comprising a plurality of different peer (neighboring) connections toone or more other routing domains or autonomous systems.

The administrative entity of an AS typically configures network nodeswithin the AS to route packets using predetermined intradomain routingprotocols, or interior gateway protocols (IGPs), such as conventionallink-state protocols and distance-vector protocols. These IGPs definethe manner with which routing information and network-topologyinformation is exchanged and processed in the AS. Examples of link-stateand distance-vectors protocols known in the art are described inSections 12.1-12.3 of the reference book entitled Interconnections,Second Edition, by Radia Perlman, published January 2000, which ishereby incorporated by reference as though fully set forth herein.

Link-state protocols, such as the Open Shortest Path First (OSPF)protocol, use cost-based routing metrics to determine how data packetsare routed in an AS. As understood in the art, a relative cost value maybe associated with a network node to determine the relative ease/burdenof communicating with that node. For instance, the cost value may bemeasured in terms of the average time for a data packet to reach thenode, the amount of available bandwidth over a communication linkcoupled to the node, the monetary cost per amount of bandwidth, etc.Network nodes in the AS generate a set of cost values associated withtheir neighboring nodes. Each set of cost values is then “advertised”(flooded) to the other interconnected nodes. Using the advertised costvalues, each node can generate a consistent “view” of the networktopology, thereby enabling the nodes to determine lowest-cost routeswithin the AS.

Distance-vector protocols, such as the Interior Gateway Routing Protocol(IGRP) or Routing Information Protocol (RIP), use distance-based routingmetrics to determine how data packets are routed in an AS. A networknode may associate a distance metric with each of its interconnectednodes in the AS. For example, the distance metric may be based on, e.g.,a number of hops between a pair of nodes or an actual distanceseparating the nodes. Operationally, the network nodes determinedistances to reachable nodes in the AS and communicate these distancemetrics to their neighboring nodes. Each neighboring node augments thereceived set of distance metrics with its own distance measurements andforwards the augmented set of metrics to its neighbors. This process iscontinued until each node receives a consistent view of the networktopology.

An intermediate network node often stores its routing information in arouting table maintained and managed by a routing information base(RIB). The routing table is a searchable data structure in which networkaddresses are mapped to their associated routing information. However,those skilled in the art will understand that the routing table need notbe organized as a table, and alternatively may be another type ofsearchable data structure. Although the intermediate network node'srouting table may be configured with a predetermined set of routinginformation, the node also may dynamically acquire (“learn”) networkrouting information as it sends and receives data packets. When a packetis received at the intermediate network node, the packet's destinationaddress may be used to identify a routing table entry containing routinginformation associated with the received packet. Among other things, thepacket's routing information indicates the packet's next-hop address.

A plurality of interconnected ASes may be configured to exchange routingand reachability information among neighboring interdomain routers ofthe systems in accordance with a predetermined external gatewayprotocol, such as the Border Gateway Protocol (BGP). The BGP protocol iswell known and generally described in Request for Comments (RFC) 1771,entitled A Border Gateway Protocol 4 (BGP-4), published March 1995,which is hereby incorporated by reference in its entirety. An adjacencyis a relationship formed between selected neighboring (peer) routers forthe purpose of exchanging routing information messages and abstractingthe network topology. The routing information exchanged by BGP peerrouters typically includes destination address prefixes, i.e., theportions of destination addresses used by the routing protocol to renderrouting (“next hop”) decisions. Examples of such destination addressesinclude IP version 4 (IPv4) and version 6 (IPv6) addresses. BGPgenerally operates over a reliable transport protocol, such as TCP, toestablish a TCP connection/session. To implement the BGP protocol, eachAS includes at least one border node through which it communicates withother, interconnected ASes. Because data packets enter and exit the ASthrough the border node, the border node is said to be located at the“edge” of the AS.

The BGP protocol generally facilitates policy-based routing in which anadministrative entity places restrictions on inter-AS routingoperations. For example, the administrator of a company's AS may employa BGP routing policy where network traffic leaving the AS is notpermitted to enter a competitor's network, even if the competitorprovides an otherwise acceptable routing path. BGP policies typically donot depend on the cost-based or distance-based routing metrics used withinterior gateway protocols. Instead, the BGP policies rely on ASpath-vector information. More specifically, the BGP protocol enables aplurality of interconnected ASes to exchange network topologyinformation. Using this topology information, each AS can derive “paths”to the other reachable ASes, each path defining a logical sequence ofASes. For example, a path between an AS1 and an AS3 may be representedby the sequence {AS1, AS2, AS3} when only AS2 intervenes. Based on thecontent of these AS sequences, the BGP protocol may filter those pathsthat do not coincide with the administrator's policies. As such,inter-AS routing operations are performed using only the “best paths”that satisfy the BGP policies.

Because BGP policies are applied to sequences of ASes, the policies arenot able to optimize inter-AS routing in other respects, such asoptimizing bandwidth utilization or minimizing cost or distance metrics.Furthermore, interior gateway protocols cannot remedy these deficienciesin the BGP protocol because they do not scale well when applied to alarge number of network nodes spanning multiple ASes. For instance, theprocess of exchanging cost-based or distance-based routing metrics amonga large number of network nodes would not only consume an unreasonableamount of network bandwidth, but also would consume an unacceptableamount of processing resources for processing those metrics to generatea convergent view of the network topology.

To address the limitations of conventional routing protocols, networkadministrators sometimes implement additional optimizations to improvenetwork performance. For example, a load-balancing or cost-minimizingprocedure may be used in conjunction with traditional routing protocolsto redistribute data flows entering or exiting a multi-homed routingdomain or AS. In some networks, border nodes located at edges of ASes,e.g., between an enterprise network and one or more Internet ServiceProviders (ISPs), may be configured as Optimized Edge Routers (OERs).Here each OER may be configured to periodically select an Optimal ExitLink (OEL) to each ISP for a given destination prefix (a monitoredand/or controlled prefix) based on performance, load, cost, and servicelevel agreements (SLAs) associated with connections to the ISP. Notably,a prefix, as defined generally herein, refers to a subset of nodeswithin the computer network. Ultimately, the end result for theenterprise network is improved Internet performance, better loaddistribution, and/or lower costs for Internet connections. Theseadditional procedures may require the border nodes (OERs) to collectvarious network statistics associated with the data flows. An exemplarysoftware application that may be used to collect the network statisticsat the border nodes is NetFlow™ by Cisco Systems, Incorporated, which isdescribed in more detail in the technical paper entitled NetflowServices Solutions Guide, published September 2002, and is herebyincorporated by reference as though fully set forth herein.

Techniques that may be used to select the OEL for the monitored prefixinclude passive monitoring and/or active probing. Passive monitoringrelies on gathering information from OERs learned from monitoringconventional user traffic, such as through-put, timing, latency, packetloss, reachability, etc. For example, selected interfaces at one or morenetwork nodes monitor incoming and outgoing data flows and collectvarious statistics for the monitored flows. Notably, interfaces mayinclude physical interfaces, such as a port on a network interface card,and/or logical interfaces, such as virtual private networks (VPN)implemented over multiple physical interfaces. Each node stores addressprefixes and statistics for the monitored data flows, which may beperiodically exported to a central management node (e.g., a “collector”or “Master”). The central management node is configured to receiveprefixes and statistics (e.g., for those prefixes) from a plurality ofdifferent network nodes. A record format that may be used to export theraw prefixes and statistics is described in the technical paper entitledNetflow v9 Export Format, which is hereby incorporated by reference inits entirety. Further, a more sophisticated interaction (e.g., afiltered and/or pre-processed information exchange) between border nodesand a Master node is described in commonly owned copending U.S. patentapplication Ser. No. 10/980,550, entitled METHOD AND APPARATUS FORAUTOMATICALLY OPTIMIZING ROUTING OPERATIONS AT THE EDGE OF A NETWORK,filed by Shah et al. on Nov. 3, 2004, the contents of which are herebyincorporated in its entirety.

Active probing, on the other hand, relies on probe packets to measurevarious performance parameters associated with accessing the monitoredprefix from an originating node (source). Here, the originating node maygenerate multiple probe packets that are then forwarded via differentexit interfaces (e.g., data links) on different paths to target nodes(targets) in the monitored (destination) prefix. Upon receiving theprobe packets, the targets respond to the originating node, e.g., withreturn packets or other known probe responses. The originating node mayeventually acquire the responses and use them to measure variousparameters, such as delay, loss, jitter, and reachability, etc.,associated with accessing the destination prefix via the differentlinks.

Once the relevant statistics are obtained (e.g., at the centralmanagement node), the collected parametric (performance) information(i.e., learned from passive monitoring or active probing) is analyzed,such as either manually by a network administrator or dynamically by asoftware script. The analyzed information may then be used to select anOEL from among the different exits that may be used to reach thedestination prefix, and/or to determine whether the data flows may bemore optimally distributed. For instance, suppose an administratordesires to make more efficient use of available network bandwidth anddetermines that a first network interface is under-utilized and a secondinterface is oversubscribed. In this case, at least some data flows atthe second interface may be redirected to the first interface. Toeffectuate such a routing change, the administrator may, for example,make static changes to the routing tables at the first and secondinterfaces or may re-assign local-preference values (or other priorityvalues) associated with the data flows.

Often, the changes are made manually by an administrator, which iscumbersome in configuration and prone to errors and/or oversights. Inparticular, manually inserting routes into routing tables may cause thecreation of routes over certain exits to unreachable destinations.Assuming that the changes made do not cause any errors, it isnevertheless difficult to determine whether the changes have any impacton the traffic flow in the network and, further, to enforce the changes.

SUMMARY OF THE INVENTION

The present invention is directed to a technique for dynamicallyenforcing a best exit selection for a controlled prefix based onpolicies and real-time performance statistics in a computer network.According to the novel technique, a Master Controller (e.g., anOptimized Edge Routing, OER, Master Controller) of an autonomous system(AS) in the network selects a best exit from the AS for the controlledprefix, and conveys the selection to a border router having the selectedexit. In response, the border router performs a parent lookup todetermine whether the controlled prefix is reachable via the best exit.If so, the border router influences routing in the AS for the controlledprefix through the best exit by, e.g., injecting routes or modifyingmetrics of existing routes. The Master Controller (or border router)then verifies that the routes for the controlled prefix traverse theselected best exit. Notably, if a route does not traverse the selectedbest exit, the border router may try to influence the route again orremove the influence.

In accordance with one aspect of the present invention, the borderrouter performs the parent lookup to ensure that it does not install aroute through an exit that is not reachable to the controlled prefix. Toperform the parent lookup, the border router may check routing protocolsfor a parent prefix route through the selected best exit. As will beunderstood by those skilled in the art, a parent prefix may be either anexact match of the controlled prefix or a less specific prefix than thecontrolled prefix. The border router only attempts to influence theroute of the controlled prefix if the controlled prefix is reachablefrom the selected best exit. Otherwise, the controlled prefix is notreachable via the selected best exit, and the border router may returnan error.

In accordance with another aspect of the present invention, the borderrouter may influence the route for the controlled prefix in a variety ofmanners. For example, in the case where the controlled prefix is morespecific than the parent prefix, the border router may inject into itsrouting tables the more specific prefix and route (i.e., over theselected best exit). Alternatively, the border router may influence theroute by modifying various route metrics, e.g., Interior GatewayProtocol (IGP) metrics. For instance, a local preference value (e.g., aninternal Border Gateway Protocol, iBGP, local-pref) of the selected bestexit may be adjusted for the controlled prefix to a more preferablevalue so that other routers will use the selected exit (e.g., asubstantially more preferred value). As another example, a new internalstatic route (e.g., for static routing) may be created and tagged as apreferred route for the controlled prefix.

In accordance with yet another aspect of the present invention, theMaster Controller (or border router) verifies that the network is usingthe selected best exit as the route for the controlled prefix, such as,e.g., by monitoring the traffic flow to the controlled prefix. Namely,statistics from traffic monitoring tools (e.g., Netflow) are collectedfor the controlled prefix, including, for example, the amount of trafficto the controlled prefix, particularly over which exit interfaces and towhich next-hops. The statistics are compared with the best exitselection to verify that the route to the controlled prefix is theselected exit. In the event the verification fails, another attempt toinfluence the route may be made, such as, e.g., with higher preferences.Otherwise, the attempted influences may be removed, for example, toaccount for when other (e.g., unknown) routing factors are taking partin the routing decision to the controlled prefix.

Advantageously, the novel technique dynamically enforces a best exitselection for a controlled prefix based on policies and real-timeperformance statistics in a computer network. By ensuring reachabilityprior to influencing routes, the novel technique prevents the creationof routes to unreachable destinations. Also, by verifying that the routehas changed in response to the influence, the novel technique canenforce the best exit selection by attempting further influence, or candeterministically concede that the best exit selection is currentlyunsuccessful for the controlled prefix. Further, the dynamic nature ofthe novel technique alleviates the need for cumbersome manualconfiguration.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and further advantages of the invention may be betterunderstood by referring to the following description in conjunction withthe accompanying drawings in which like reference numerals indicateidentically or functionally similar elements, of which:

FIG. 1 is a schematic block diagram of an exemplary computer networkthat may be advantageously used with the present invention;

FIG. 2 is a schematic block diagram of an exemplary node that may beadvantageously used with the present invention;

FIG. 3 is a schematic block diagram of an exemplary routing table thatmay be used in accordance with the present invention; and

FIG. 4 is a flowchart illustrating a procedure for dynamically enforcinga best exit selection for a controlled prefix based on policies andreal-time performance statistics in accordance with the presentinvention.

DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT

FIG. 1 is a schematic block diagram of an exemplary computer network 100comprising an autonomous system (AS) AS1 (e.g., an enterprise or contentprovider network) interconnected to one or more destination prefixes(e.g., within one or more content consumer networks). Although AS1 isillustratively an autonomous system, those skilled in the art willappreciate that AS1 may be configured as one or more routing domains orother networks or subnetworks. AS1 comprises one or more network nodes,including a set of communicating border nodes (illustratively, edge orborder routers, BRs) BR1, BR2, and BR3, through which clientcommunications, such as data packet traffic, can pass into and out ofthe AS. For example, BR1-BR3 permit communication from AS1 to/fromdestination prefixes (e.g., via a wide area network, or WAN), such asthrough illustrative exits 1 and 2 on BR1, exits 3 and 4 on BR2, andexits 5 and 6 on BR3. Routing operations at the border nodes BR1-3 maybe managed by an optimized edge routing (OER) “Master” node, which maybe connected to the border nodes by, e.g., point-to-point links or alocal area network. Also, BR1-BR3 may be in communication with eachother, such as through illustrative links A and B as shown. Theseexamples are merely representative. Those skilled in the art willunderstand that any number of routers, nodes, links, and exits may beused in the computer network and connected in a variety of ways, andthat the view shown herein is for simplicity.

Data packets may be communicated by the AS and destination prefixesusing pre-defined network communication protocols such as theTransmission Control Protocol/Internet Protocol (TCP/IP), User DatagramProtocol (UDP), Asynchronous Transfer Mode (ATM) protocol, Frame Relayprotocol, Internet Packet Exchange (IPX) protocol, etc. Routingdecisions within an AS may rely on predetermined “interior” gatewayprotocols (IGPs), such as conventional link-state or distance-vectorprotocols. In addition, data packets containing network topologyinformation may be exchanged among ASes using “external” gatewayprotocols, such as the Border Gateway Protocol (BGP).

FIG. 2 is a schematic block diagram of an exemplary node 200 that may beadvantageously used with the present invention, such as, e.g., a bordernode (e.g., an edge router) or a master node. The node comprises aplurality of network interfaces 210 a-n (e.g., line cards), a processor220, and a memory 240 interconnected by a system bus 250. The networkinterfaces 210 contain the mechanical, electrical and signalingcircuitry for communicating data over physical links coupled to thenetwork 100, and also may be adapted to process the incoming andoutgoing data. The network interfaces may be further configured totransmit and/or receive data using a variety of different communicationprotocols, including, inter alia, TCP/IP, UDP, ATM, synchronous opticalnetworks (SONET), wireless protocols, Frame Relay, Ethernet, FiberDistributed Data Interface (FDDI), etc. Notably, a physical networkinterface 210 may also be used to implement one or more virtual networkinterfaces, such as for virtual private network (VPN) access, known tothose skilled in the art. Both physical network interfaces and virtualnetwork interfaces (e.g., routes out of an edge router) are referred togenerally herein as “exits.”

The memory 240 comprises a plurality of storage locations that areaddressable by the processor 220 and the network interfaces 210 forstoring software programs and data structures associated with thepresent invention. The processor 220 may comprise necessary elements orlogic adapted to execute the software programs and manipulate the datastructures, such as routing table 300. An operating system 242 (e.g.,the Internetworking Operating System, or IOS™, of Cisco Systems, Inc.),portions of which are typically resident in memory 240 and executed bythe processor, functionally organizes the router by, inter alia,invoking network operations in support of software processes and/orservices executing on the router. These software processes and/orservices may include Routing Information Base (RIB) 245, OER/Master OERProcess 246, and routing services 247. It will be apparent to thoseskilled in the art that other processor and memory means, includingvarious computer-readable media, may be used to store and executeprogram instructions pertaining to the inventive technique describedherein.

Routing services 247 contain computer executable instructions executedby processor 220 to perform functions provided by one or more routingprotocols, such as OSPF, IS-IS, IP, BGP, etc. These functions may beconfigured to manage a forwarding information database (not shown)containing, e.g., data used to make forwarding decisions. The RIB 245maintains copies of routes (paths) provided by the routing protocols,such as IGP or BGP, in order to compute best paths/routes forinstallation into the routing table 300, described below.

According to the illustrative embodiment of the present invention, theOER/Master OER Process 246 is employed by an OER node (e.g., borderrouters BR1-3) and an OER Master node (e.g., an OER Master router orMaster Controller), respectively. The Master OER process 246 executingon the OER Master node communicates with border routers BR1-3 torequest, among other things, the monitoring of a set of addressprefixes. The OER processes 246 executing on the border routers monitortraffic at the edge of the AS1 and respond with, inter alia, networkstatistics corresponding to the monitored prefixes. Illustratively,instances of the OER process 246 execute on the network interfaces 210as OER processes 211 a-n configured to measure various types of networkstatistics acquired from monitored traffic. These statistics are thenforwarded from the OER processes 211 a-n to the OER process 246. Thestatistics may correspond to various traffic measurements, such asround-trip delay times, data throughput (i.e., the amount of datatransferred or received), packet loss, reachability, etc. In general,the OER processes (notably, 246 and/or 211 a-n) may measure anyarbitrary traffic metric, including conventional cost-based anddistance-based metrics. Further, the OER Process 246 and/or 211 a-n maycalculate statistical averages, variances, medians, etc. of a collectionof traffic measurements.

Techniques for learning address prefixes and collecting trafficstatistics (passively monitoring) are described in commonly-ownedcopending U.S. patent application Ser. No. 10/980,550, entitled METHODAND APPARATUS FOR AUTOMATICALLY OPTIMIZING ROUTING OPERATIONS AT THEEDGE OF A NETWORK, filed by Shah et al. on Nov. 3, 2004, the contents ofwhich are hereby incorporated in its entirety. Also, techniques foractively probing (managing paths and targets of active probe packets)are described in commonly-owned copending U.S. patent application Ser.No. 11/113,629, entitled ACTIVE PROBE PATH MANAGEMENT, filed by Blair etal. on Apr. 25, 2005, and commonly owned copending U.S. patentapplication Ser. No. 11/113,582, entitled ACTIVE PROBE TARGETMANAGEMENT, filed by Metzger et al. on Apr. 25, 2005, the contents ofboth of which are hereby incorporated in their entirety.

The statistics from the OER Process 246 and/or 211 a-n are thenprocessed at the Master node in accordance with the Master OER process246. More specifically, the Master OER process 246 analyzes thestatistics and determines whether the distribution of traffic enteringand/or leaving the AS1 (or a configured subset of AS1) can be optimized,e.g., according to one or more policies. If so, the Master OER processmay redistribute traffic routed through the border nodes by, e.g.,associating new BGP local-preference values with selected traffic orstatically changing the routing table contents of the border nodes, asdescribed in detail below. In that sense, the Master OER process selectsoptimal exit links (OELs) (“best exits”) to various destinationprefixes. Notably, the Master OER process 246 may be distributed among aplurality of nodes, and thus need not reside in a single OER Masternode. Also, it is not necessary for a single OER Master node to containrouting processes or routing tables, other than what is necessary forcommunication with the border nodes. Those skilled in the art willunderstand that while the OER Master node and OER node (e.g., a borderrouter) are shown as separate nodes (e.g., in FIG. 1), the Master andOER node may be configured within the same node. For example, a singleborder router (e.g., a home office router) having multiple exits/pathsmay both monitor the quality of its exits and select the OEL itself.

The present invention is directed to a technique for dynamicallyenforcing a best exit selection for a controlled prefix based onpolicies and real-time performance statistics in a computer network.According to the novel technique, a Master Controller (e.g., an OERMaster Controller) of an AS in the network selects a best exit from theAS for the controlled prefix, and conveys the selection to a borderrouter having the selected exit, as described above. In response, theborder router performs a parent lookup (e.g., in a routing table) todetermine whether the controlled prefix is reachable via the best exit.If so, the border router influences routing in the AS for the controlledprefix through the best exit by, e.g., injecting routes or modifyingmetrics of existing routes. The Master Controller (or border router)then verifies that the routes for the controlled prefix traverse theselected best exit. Notably, if a route does not traverse the selectedbest exit, the border router may try to influence the route again orremove the influence.

In accordance with one aspect of the present invention, the borderrouter (i.e., the border router having the selected best exit) performsthe parent lookup to ensure that it does not install a route through anexit that is not reachable to the controlled prefix. The parent lookupis an additional safeguard against errors, because the creation of aroute to a prefix (especially a manual creation) could possibly resultin the creation of an erroneous route through an exit that is notreachable (i.e., does not have reachability) to the prefix. To performthe parent lookup, the border router may check routing protocols for aparent prefix route through the selected best exit. For example,conventional BGP and/or static routing tables (not shown) generally havea listing of which address prefixes are reachable and from which exits.These routing protocol tables, e.g., maintained by routing services 247,are normally kept up-to-date by well-known update methods.

As will be understood by those skilled in the art, a parent prefix maybe either an exact match of the controlled prefix or a less specificprefix than the controlled prefix. In other words, as will be understoodto those skilled in the art, the mask length (“mask_length”) of theparent prefix must be less than or equal to the mask length of thecontrolled prefix. Briefly, a mask length, often denoted as “/N,” is arepresentation of the number of most significant address bits shared bynodes within a certain address prefix. Therefore, a lower number ofshared significant bits creates a larger prefix (e.g., /8) than does alarger number for a smaller prefix (e.g., /24). As a simple example,assume two 32-bit address prefixes, 1.1.1.0/31, and 1.1.1.0/32. Here,the /31 prefix includes addresses 1.1.1.0 and 1.1.1.1, sharing the samefirst 31 significant bits, while the /32 prefix only includes address1.1.1.0, the only shared combination of all 32 bits. Because the addressprefix 1.1.1.0/32 falls within the address prefix 1.1.1.0/31, the /31prefix is said to be a “parent prefix” for the /32 prefix.

The border router (or Master Controller) only attempts to influence theroute of the controlled prefix if the controlled prefix is reachablefrom the selected best exit. For example, assume that a prefix P1 havinga mask length of /16 exists within a BGP routing table of BR1 in FIG. 1,and P1 is reachable via both exit 1 and 2. If the controlled prefix,P1′, shares the same 16 significant bits as P1 (i.e., is defined withinthe prefix P1) and has a mask length of /24 (i.e., greater than P1),then the more specific prefix P1′ is reachable via both exits 1 and 2 aswell. If the controlled prefix does have a parent prefix reachable viathe selected best exit, the route for the controlled prefix may beinfluenced to traverse the selected best exit as described below.Otherwise, such as in the case where P1 is not reachable via exit 2 andthe selected best exit is exit 2, the controlled prefix P1′ is also notreachable via the selected best exit. In this case, the border routerBR1 may return an error to the Master Controller (e.g., Master OERProcess 246), e.g., to update the best exit selection or forinvestigation by a system administrator.

In accordance with another aspect of the present invention, the borderrouter may influence the route for the controlled prefix in a variety ofmanners. For example, in the case where the controlled prefix is morespecific than the parent prefix, the border router may inject into itsrouting tables the more specific prefix and route (i.e., over theselected best exit). Notably, the more specific route may have the samenext-hop as the parent prefix, which is be reachable through selectedbest exit. For instance, P1′ from above may be inserted (or “injected”)as a more specific prefix (e.g., /24) into a routing table (e.g., a BGPtable), and any traffic destined for P1′ will use the exit defined forP1′, while all other traffic destined for P1 (e.g., /16) that is notwithin P1′ will use the exit defined for Pl.

FIG. 3 is a schematic block diagram of an exemplary routing table 300that may be used in accordance with the present invention. Routing table300 is illustratively stored in memory 240 and includes one or moreentries 325, each comprising a plurality of fields for storing areachable destination address prefix 305, an exit (next-hop) interface310 and next-hop address 315 to reach that destination, and optionallyother information 320, such as an associated metric (e.g., cost) ofreaching the destination, local preference values, tags, etc., asdescribed herein. As noted, the routing table 300 is illustrativelymaintained and managed by RIB 245.

Assume that a destination address prefix P1 is reachable from borderrouter BR1 via exit 1 through a next-hop border router BR “X” in anotherAS. Destination address field 305 contains the reachable address P1, andthe exit interface and next-hop field 310 and 315, are populated with,e.g., exit 1 and a loopback address of node BR “X”, respectively. Notethat a loopback address of the next-hop node is used as the next-hopaddress for many reasons, including as a way to avoid depending upon theavailability of network interfaces of that node. The other informationfield 320 may contain the cost of reaching P1, such as the cost of alllinks to the reachable address, or a local preference value, or a tag,as described herein, according to the configuration of the routing table(e.g., an IGP, BGP, or static routing table/entry), as will beunderstood by those skilled in the art. Other entries 325 may containother reachable addresses and corresponding information as shown. Forinstance, the entry 325 for inserted route for P1′ appears in a dashedbox with corresponding selected best exit, e.g., exit 2, and otherappropriate information. Notably, one or more prefixes (e.g., P7) mayhave exits through other border routers, so their exit interfaces 310may be an internal exit (e.g., Link A) to other border routers (e.g.,BR2). Those skilled in the art will understand that routing table 300 ismerely representative and is used for illustrative purposes herein, andthat other tables, table configurations, or tables for other routingprotocols may be used in accordance with the present invention.

Alternatively, the border router may influence the route by modifyingvarious route metrics, e.g., IGP metrics. For instance, a localpreference value (e.g., an internal BGP, iBGP, local-pref) of theselected best exit may be adjusted for the controlled prefix to a morepreferable value so that other routers will use the selected exit (e.g.,a substantially more preferred value). For example, in the event thatP1′ already exists within the routing table 300 with a default localpreference value (in field 320) of, e.g., 100, OER process 246 mayincrease the preference value to, e.g., 5000 (a much more preferablevalue). When route updates are subsequently forwarded to iBGP peerswithin AS1, the peers will more likely than not update their routes forP1′ to exit the AS via exit 2. As noted, where routing table 300 is aBGP table, more than one entry may exist for each prefix as the prefixmay be reachable via more than one exit. In this example, the selectedexit may be given the most preferable preference value out of theplurality of exits accordingly.

As another example, a new internal static route (e.g., for staticrouting) may be created and tagged as a preferred route for thecontrolled prefix. Also, a new static route may be created andredistributed into local IGP tables and update messages with metricsspecific to individual IGPs (e.g., OSPF, IS-IS, etc.). (As will beunderstood by those skilled in the art, route maps may be required forthis type of redistribution.) For instance, a static route with asubstantially lower cost metric or one with another favorable metricused for route determination may be used. Other means for influencingthe route of the controlled prefix to utilize the selected best exit maybe applied by the OER process 246 as will be understood by those skilledin the art, and those mentioned above are merely representative.

Notably, these influences (e.g., metric/preference changes, injectedroutes, etc.) may be initiated at each of the border routers of the AS(i.e., BR1-3) to indicate the best selected exit on any one of theborder routers. Alternatively, the border router having the bestselected exit may initiate the influences and, through conventionalrouting updates, inform the other border routers of the changes. This isalso true for other routers and nodes within the AS (not shown), suchthat they, too, may forward traffic to the appropriate border routerhaving the selected best exit. However, it is also important to notethat it may be desirable not to distribute some or all of the influencedroutes (e.g., new routes, changed metrics/preferences, etc.) outside ofthe controlled domain (e.g., the enterprise network AS1) for variousreasons that will be understood by those skilled in the art, such asconfidentiality or other proprietary reasons. For example, a BGPadvertisement may include the new routes/preferences with a conventional“no-export” indication, so that the influential information is notadvertised beyond any exits to other ASes.

In accordance with yet another aspect of the present invention, theMaster Controller (or border router) verifies that the network is usingthe selected best exit as the route for the controlled prefix, such as,e.g., by monitoring the traffic flow to the controlled prefix. Namely,statistics from traffic monitoring tools (e.g., Netflow or other trafficmonitoring processes) are collected for the controlled prefix,including, for example, the amount of traffic to the controlled prefix,particularly over which exit interfaces and to which next-hops. Usingthe example described above, assume that the Master OER process 246 hasselected exit 2 for traffic destined to prefix P1′. The trafficmonitoring process (e.g., OER processes 246) collects statistics fortraffic destined to prefix P1′ from all available exits, exits 1-6.

The collected statistics are compared with the best exit selection toverify that the route to the controlled prefix is the selected exit. Forinstance, if the statistics indicate that substantially all the trafficdestined for the controlled prefix (P1′) utilizes the selected best exit(exit 2), then the influence is verified. Those skilled in the art willunderstand that a configurable threshold of traffic (e.g., 80% or 90%)may be sufficient to verify that the influence has effectively changed(diverted) the traffic flow to the selected best exit. On the otherhand, if a certain amount of the traffic destined for the controlledprefix (P1′) utilizes one or more exits other than the selected bestexit (e.g., any or more than 10% or 20%, as mentioned above), then theverification fails, and the influence was not adequately effective.

In the event the verification fails, another attempt to influence theroute may be made, such as, e.g., with higher preferences. Other and/oradditional attempts may also be made, as will be understood by thoseskilled in the art, until the influences change the route for thecontrolled prefix (P1′) to traverse the selected best exit (exit 2). Forinstance, another attempt at the same preference may be made after aconfigured delay (e.g., a “backoff time”). Notably, the number of otherand/or additional attempts are configurable, e.g., making one additionalattempt. Alternatively, or after the configurable number of additionalattempts are made, upon failing to verify the influence, any attemptedinfluences may be removed, for example, to account for when other (e.g.,unknown) routing factors participate in the routing decision to thecontrolled prefix. For example, another process may be controlling theexits to the controlled prefix, of which OER process 246 is unable todetect. When this is case, the influences may be removed (e.g.,resetting the preference value to the default preference or removingstatic routes, etc.) so as not to leave remnants of the influences, andthe OER process 246 may generate an error, such as for furtherinvestigation by a system administrator.

Notably, as will be apparent to those skilled in the art, since theparent prefix route is closely coupled with the influenced route (e.g.,more specific route) of the controlled prefix, in the case of systemfailures, routing will fall back to traditional routing without creatingmuch disturbance to the network. Moreover, if network topology changes(e.g., BGP updates, such as adding or removing reachability), OERprocess 246 may learn of the change and may update the best exitselection or route influences described above. Particularly, the OERprocess 246 may learn of the change based on communication amongprocesses of the node (e.g., directly from the BGP message), or based ontraffic changes in the network.

FIG. 4 is a flowchart illustrating a procedure for dynamically enforcinga best exit selection for a controlled prefix based on policies andreal-time performance statistics in is accordance with the presentinvention. The procedure 400 starts at step 405, and continues to step410, where a best exit is selected for a controlled prefix, e.g., by theOER Master process 246, as described above. The OER process (e.g., atthe border node) then performs a parent lookup at step 415 to determinewhether the controlled prefix is reachable via the selected best exit.If a parent does not exist for the controlled prefix in step 420, OERprocess 246 is unable to influence the route for the controlled prefixover (i.e., out) the selected exit, in step 450, and may return anappropriate error. The procedure then ends at step 455.

If, however, a parent does exist in step 420, OER process 246 attemptsto influence the route for the controlled prefix out the selected bestexit in step 425, such as through the techniques described above. Uponattempting to influence the route, in step 430 the OER process verifiesthat the route for the controlled prefix currently used by the networkis actually the selected best exit, such as, e.g., by monitoring trafficflow. If the route for the selected best exit is verified at step 435,the influence is successful, and the procedure ends at step 455 (i.e.,with traffic to the controlled prefix travelling over the selected bestexit). If, on the other hand, the route is not verified at step 435, theOER process 246 may try to influence the route again in step 440, inwhich case the procedure returns to step 415 to confirm that a parentstill exists (e.g., in case of routing changes). Notably, those skilledin the art will understand that when OER process 246 tries to influencethe route again in step 440, it may also do so without performing theparent lookup (i.e., returning to step 425). Alternatively at step 440,such as, e.g., after a configurable number of retries, OER process 246may remove the attempted influence(s) at step 445. Once any influencesare removed, the OER process 246 may still be unable to influence theroute in step 450, e.g., due to unknown reasons and, as a result, mayreturn an error. The procedure then ends at step 455.

Advantageously, the novel technique dynamically enforces a best exitselection for a controlled prefix based on policies and real-timeperformance statistics in a computer network. By ensuring reachabilityprior to influencing routes, the novel technique prevents the creationof routes to unreachable destinations. Also, by verifying that the routehas changed in response to the influence, the novel technique canenforce the best exit selection by attempting further influence, or candeterministically concede that the best exit selection is currentlyunsuccessful for the controlled prefix. Further, the dynamic nature ofthe novel technique alleviates the need for cumbersome manualconfiguration.

While there has been shown and described an illustrative embodiment thatdynamically enforces a best exit selection for a controlled prefix basedon policies and real-time performance statistics in a computer network,it is to be understood that various other adaptations and modificationsmay be made within the spirit and scope of the present invention. Forexample, the invention has been shown and described herein for enforcingbest path selection for a controlled prefix. However, the invention inits broader sense is not so limited, and may, in fact, be used toenforce any kind of computer network selection, such as a best of aplurality of data/file servers (e.g., based on workload, response time,etc.), computers, applications, processes, etc., as will be understoodby those skilled in the art. Also, while the invention has been shownand described for enforcing a single best exit selection, the inventionmay, in fact, be used to enforce the selection of multiple best exits,e.g., for load balancing, etc., as will be understood by those skilledin the art. Further, those skilled in the art will understand that theterm “exit” as used herein may indicate either a physical exit orvirtual exit.

The foregoing description has been directed to specific embodiments ofthis invention. It will be apparent, however, that other variations andmodifications may be made to the described embodiments, with theattainment of some or all of their advantages. For instance, it isexpressly contemplated that the teachings of this invention can beimplemented as software, including a computer-readable medium havingprogram instructions executing on a computer, hardware, firmware, or acombination thereof. Also, electromagnetic signals may be generated tocarry computer executable instructions that implement aspects of thepresent invention over, e.g., a wireless data link or a data network,such as the Internet. Accordingly this description is to be taken onlyby way of example and not to otherwise limit the scope of the invention.Therefore, it is the object of the appended claims to cover all suchvariations and modifications as come within the true spirit and scope ofthe invention.

What is claimed is:
 1. A method for dynamically enforcing a best exitselection for a controlled prefix based on policies and real-timeperformance statistics in a computer network, the method comprising:selecting, by a processor, a best exit for the controlled prefix; inresponse to selecting the best exit for the controlled prefix,performing a parent lookup that looks to a parent prefix of thecontrolled prefix, to determine whether the controlled prefix isreachable via the selected best exit; if so, influencing a route for thecontrolled prefix to be over the selected best exit; in response to theinfluencing the route, verifying if traffic flow for the controlledprefix is directed over the selected best exit; and in the event thatthe traffic flow is not directed over the selected best exit, furtherinfluencing the route for the controlled prefix to be over the selectedbest exit or removing any attempted influences on the route for thecontrolled prefix to be over the selected best exit.
 2. The method as inclaim 1, wherein the further influencing the route for the controlledprefix to be over the selected best exit comprises influencing the routefor the controlled prefix to be over the best exit with more influence.3. The method as in claim 1, wherein the removing any attemptedinfluences on the route for the controlled prefix is performed after aconfigurable number of retries of influencing the route for thecontrolled prefix to be over the selected best exit.
 4. The method as inclaim 1, further comprising: performing the parent lookup by checkingrouting protocols for the parent prefix route over the selected bestexit, wherein the parent prefix is selected from a group consisting of aprefix that is the same as the controlled prefix and a prefix that isless specific than the controlled prefix.
 5. The method as in claim 4,further comprising: in the event the controlled prefix is more specificthan the parent prefix, influencing the route of the controlled prefixover the selected best exit by injecting the more specific controlledprefix into appropriate routing tables.
 6. The method as in claim 1,further comprising: influencing the route of the controlled prefix overthe selected best exit by modifying metrics of the route.
 7. The methodas in claim 6, further comprising: modifying a default local preferencevalue for the route of the controlled prefix over the selected best exitto a higher local preference value.
 8. The method as in claim 7, whereinthe local preference value is an internal Border Gateway Protocol (iBGP)local preference value.
 9. The method as in claim 1, further comprising:influencing the route of the controlled prefix over the selected bestexit by creating a new static route for the controlled prefix over theselected best exit.
 10. The method as in claim 9, further comprising:tagging the new static route for the controlled prefix over the selectedbest exit as a preferred route for the controlled prefix.
 11. The methodas in claim 9, further comprising: modifying metrics of the new staticroute for the controlled prefix over the selected best exit to morefavorable metrics than routes over exits other than the selected bestexit.
 12. The method as in claim 11, further comprising: advertising themodified metrics into the computer network using one or more InteriorGateway Protocols (IGPs).
 13. The method as in claim 1, wherein theselected best exit is used to exit a controlled network, the methodfurther comprising: preventing distribution of the influenced route forthe controlled prefix to networks outside of the controlled network. 14.The method as in claim 1, further comprising: verifying if the trafficflow for the controlled prefix is directed over the selected best exitby monitoring the traffic flow to the controlled prefix and comparing anexit used by the traffic flow with the selected best exit.
 15. Themethod as in claim 1, further comprising: selecting a plurality of bestexits for the controlled prefix and performing the steps of performing aparent lookup, influencing a route, and verifying for each of theplurality of best exits.
 16. A system for dynamically enforcing a bestexit selection for a controlled prefix based on policies and real-timeperformance statistics in a computer network, the system comprising: aMaster Controller to select a best exit for the controlled prefix; aborder router to learn of the selected best exit from the MasterController, the border router having the selected best exit, the borderrouter configured to: i) perform a parent lookup that looks to a parentprefix of the controlled prefix, to determine whether the controlledprefix is reachable via the best exit; and ii) if so, influence a routefor the controlled prefix to be over the selected best exit; and atraffic monitoring process located on at least one of the MasterController or border router, the traffic monitoring process configuredto verify if traffic flow for the controlled prefix is directed over theselected best exit, and in the event that the traffic flow is notdirected over the selected best exit, cause the border router to furtherinfluence the route for the controlled prefix to be over the selectedbest exit or remove any attempted influences on the route for thecontrolled prefix to be over the selected best exit.
 17. The system asin claim 16, wherein the border router is configured to furtherinfluence the route for the controlled prefix to be over the best exitwith more influence.
 18. The system as in claim 16, wherein the borderrouter is further configured to remove any attempted influences on theroute for the controlled prefix after a configurable number of retriesof influencing the route for the controlled prefix to be over theselected best exit.
 19. The system as in claim 16, wherein the best exitis an exit selected from a group consisting of physical exit interfacesand virtual exit interfaces.
 20. A node for dynamically enforcing a bestexit selection for a controlled prefix based on policies and real-timeperformance statistics in a computer network, the node comprising: oneor more network interfaces; a processor coupled to the one or morenetwork interfaces and adapted to execute software processes; and amemory adapted to store a best exit selection enforcement processexecutable by the processor, the decision making process configured to:i) perform a parent lookup that looks to a parent prefix of thecontrolled prefix, to determine whether the controlled prefix isreachable via a selected best exit; ii) if so, influence a route for thecontrolled prefix to be over the selected best exit; iii) in response toinfluencing the route, verify if traffic flow for the controlled prefixis directed over the selected best exit; and iv) in the event that thetraffic flow is not directed over the selected best exit, furtherinfluence the route for the controlled prefix to be over the selectedbest exit or remove any attempted influences on the route for thecontrolled prefix to be over the selected best exit.
 21. The node as inclaim 20, wherein the best exit selection enforcement process is furtherconfigured to further influence the route for the controlled prefix tobe over the best exit with more influence.
 22. The node as in claim 20,wherein the best exit selection enforcement process is furtherconfigured to remove any attempted influences on the route for thecontrolled prefix after a configurable number of retries of influencingthe route for the controlled prefix to be over the selected best exit.23. The node as in claim 20, wherein the best exit selection enforcementprocess is an optimized edge routing (OER) process.
 24. A system fordynamically enforcing a best exit selection for a controlled prefixbased on policies and real-time performance statistics in a computernetwork, the system comprising: means for selecting a best exit for thecontrolled prefix; means for performing a parent lookup that looks to aparent prefix of the controlled prefix, to determine whether thecontrolled prefix is reachable via the selected best exit; means forinfluencing a route for the controlled prefix to be over the best exit,if the controlled prefix is reachable via the selected best exit; meansfor verifying if traffic flow for the controlled prefix is directed overthe selected best exit; and means for further influencing the route forthe controlled prefix to be over the selected best exit or removing anyattempted influences on the route for the controlled prefix to be overthe selected best exit, in the event that the traffic flow is notdirected over the selected best exit.
 25. The system as in claim 24,further comprising: means for further influencing the route for thecontrolled prefix over the best exit with more influence.
 26. The systemas in claim 24, further comprising: means for removing any attemptedinfluences on the route for the controlled prefix after a configurablenumber of retries of influencing the route for the controlled prefix tobe over the selected best exit.
 27. A non-transitory computer readablestorage medium storing executable program instructions for dynamicallyenforcing a best exit selection for a controlled prefix based onpolicies and real-time performance statistics in a computer network, theexecutable program instructions comprising program instructions for:selecting a best exit for the controlled prefix; in response toselecting the best exit, performing a parent lookup that looks to aparent prefix of the controlled prefix, to determine whether thecontrolled prefix is reachable via the selected best exit; if so,influencing a route for the controlled prefix to be over the selectedbest exit; in response to influencing the route, verifying if trafficflow for the controlled prefix is directed over the selected best exit;and in the event that the traffic flow is not directed over the selectedbest exit, further influencing the route for the controlled prefix to beover the selected best exit or removing any attempted influences on theroute for the controlled prefix to be over the selected best exit. 28.The non-transitory computer readable storage medium as in claim 27, theexecutable program instructions further comprising program instructionsfor: further influencing the route for the controlled prefix over thebest exit with more influence.
 29. The non-transitory computer readablestorage medium as in claim 27, the executable program instructionsfurther comprising program instructions for: removing any attemptedinfluences on the route for the controlled prefix after a configurablenumber of retries of influencing the route for the controlled prefix tobe over the selected best exit.